/*******************************************************************************
 * Package: com.song.boot.springstudy.thread
 * Type:    Join
 * Date:    2024-02-05 14:21
 *
 * Copyright (c) 2024 LTD All Rights Reserved.
 *
 * You may not use this file except in compliance with the License.
 *******************************************************************************/
package com.song.boot.springstudy.thread.join;


/**
 * 功能描述：X.join() → “当前线程等 X 做完，再继续”，和其他线程无关。
 * 主线程等待  x.join线程 执行完  主线程再继续
 * @author Songxianyang
 * @date 2024-02-05 14:21
 */
public class Join2 {
    public static void main(String[] args) throws Exception {
        Test a = new Test("A");
        Test b = new Test("B");
        Test c = new Test("C");
        Test d = new Test("D");
        System.out.println("主线程start");
        // 关键修改：启动一个线程 → 等待它执行完 → 再启动下一个
        a.start(); // 获取cpu 时间片
        a.join(); // 主线程等待a执行完，确保a先打印

        b.start();
        b.join(); // 主线程等待b执行完，确保b在a之后打印

        c.start();
        c.join(); // 确保c在b之后打印

        d.start();
        d.join(); // 确保d在c之后打印

        System.out.println("主线程end");
    }
}

